package controllers;

import java.util.Vector;

import javax.swing.JOptionPane;

import models.Obra_Social;
import models.Odontologo;
import models.Paciente;
import models.Sistema;
import stores.Dao_ObrasSociales;
import stores.Dao_Pacientes;

public class Pantalla_Turnos_Controller {
	
	private Dao_Pacientes dbPacientes;
	private static Pantalla_Turnos_Controller instancia;
	private Sistema sis= Sistema.getInstancia();
	private Dao_ObrasSociales dbObrasSociales;
	
	
	public static Pantalla_Turnos_Controller getInstancia() {
		if(instancia==null)
			instancia= new Pantalla_Turnos_Controller ();
		return instancia;
	}
	

	private Pantalla_Turnos_Controller() {
		super();
		dbObrasSociales= new Dao_ObrasSociales();
		// TODO Auto-generated constructor stub
	}

	public boolean validarNombreYapellido(String nombre, String apellido) {

		boolean validar = true;
		if (nombre.isEmpty()) {
			validar = false;
			JOptionPane.showMessageDialog(null,
					"Debe completar el campo Nombre");
		}
		if (apellido.isEmpty()) {
			validar = false;
			JOptionPane.showMessageDialog(null,
					"Debe completar el campo Apellido");
		}
		return validar;
	}

	public boolean validarDni(String dni) {
		boolean validar = true;
		if (dni.isEmpty()) {
			validar = false;
			JOptionPane.showMessageDialog(null,
					"El campo Dni no debe estar vacio");
		}
		if (!isNumeric(dni)) {
			validar = false;
			JOptionPane.showMessageDialog(null,
					"El campo Dni debe contener unicamente numeros");
		}
		return validar;
	}

	public boolean validarTelefono(String tel) {
		boolean validar = true;
		if (tel.isEmpty()) {
			validar = false;
			JOptionPane.showMessageDialog(null,
					"El campo Telefono no debe estar vacio");
		}
		if (!isNumeric(tel)) {
			validar = false;
			JOptionPane.showMessageDialog(null,
					"El campo Telefono debe contener unicamente numeros");
		}
		return validar;
	}
		   
		  
	
	/* IS NUMERIC ?? */
	
	public boolean isNumeric(String texto)
	{
		try{
			Integer.parseInt(texto);
			return true;
		}
		catch(Exception e){
			return false;
		}
	}
	
	
		public Vector<Paciente> buscarPacientePorNombreOApellido(String nombre,
			String apellido) {
		
		return sis.buscarPacientePorNombreOApellido(nombre, apellido);
	}
		
		 public boolean crearPaciente(String dni, String nombre, String apellido, String telefono, String ooss){
			 
		 
			  boolean validar;
			  Obra_Social os;
			  os = dbObrasSociales.getObraSocialApartirDeNombre(ooss);
			  validar = (sis.crearPaciente(Integer.parseInt(dni),nombre,apellido,Integer.parseInt(telefono),os));
			  
			  if (validar)
			  {
			    JOptionPane.showMessageDialog(null, "El paciente se ha creado correctamente");
			  }
			  else
			  {
			   JOptionPane.showConfirmDialog(null, "Ha ocurrido un error al crear el Paciente nuevo");
			  }
			  
			  
			 
			  return validar;
			
		}
		
	
		public Paciente buscarPacientePorDni(int dni) {
			// TODO Auto-generated method stub
			return sis.buscarPacientePorDni( dni);
		}
	
		

}
